package com.controller;

import com.mapper.CategoriesMapper;
import com.mapper.GoodsMapper;
import com.mapper.GoodsSKUMapper;
import com.pojo.Categories;
import com.pojo.Goods;
import com.pojo.GoodsSKU;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author zzuli_huahua
 * @version 1.0
 * @date 2022/7/10 10:23
 *
 * 用于初始化MySQL数据库
 */
@RestController
@Slf4j
public class initController {

    @Resource
    private CategoriesMapper categoriesMapper;
    @Resource
    private GoodsMapper goodsMapper;
    @Resource
    private GoodsSKUMapper goodsSKUMapper;

    /**
     * 获取goodsSKUS库数据
     * http://localhost:8080/MyBatisPlus/get
     * @return
     */
    @GetMapping("MyBatisPlus/get")
    public String testMyBatisPlus(){
        List<GoodsSKU> goodsSKUS = goodsSKUMapper.selectList(null);
        System.out.println("goodsSKUS对象的数据："+goodsSKUS.toString());
        return goodsSKUS.toString();
    }

    /**
     * 数据库初始化（先清空数据库的三个表数据再执行）
     * 默认的事务级别是MySQL的 可重复读
     * http://localhost:8080/MyBatisPlus/init
     * @return
     */
    @GetMapping("MyBatisPlus/init")
    @Transactional
    public String MyBatisPlusInit(){

        // 这是Categories的 id（主键） 和 Goods 的 cate_id（外键）
        Integer newCate_id = 1002;
        // 这是Goods的 id（主键） 和 GoodsSKU 的 goods_id（外键）
        Integer newGoods_id = 9002;

        //模拟一个Categories商品
        Categories categories = new Categories();
        categories.setId(newCate_id);
        categories.setPid(0);
        categories.setCate_name("饼干");

        //模拟一个Goods商品
        Goods goods = new Goods();
        goods.setId(newGoods_id);
        goods.setGoods_name("奥利奥抹茶饼干");
        goods.setCate_id(newCate_id);
        goods.setPrice(7);
        goods.setOriginal(9);
        goods.setTags("特价活动");
        goods.setContent("双十一活动价钱");
        goods.setSummary("好吃又上瘾");
        goods.setIs_sale(1);

        //模拟一个goodsSKU商品
        GoodsSKU goodsSKU = new GoodsSKU();
        goodsSKU.setId(8002);
        goodsSKU.setGoodsId(newGoods_id);
        goodsSKU.setTitle("风味饼干");
        goodsSKU.setNum(1000);
        goodsSKU.setPrice(99);
        goodsSKU.setProperties("饮料类");
        goodsSKU.setBarCode("1111111111");
        goodsSKU.setGoodsCode("2222222222");
        goodsSKU.setStatus(1);

        /**
         * goodsSKU表的goods_id字段是goods表的主键
         * goods表的cate_id字段是categories表的主键
         * 所以只能是按照 categories、goods、goodsSKU 顺序插入数据库
         */
        //1、执行categories插入
        categoriesMapper.insert(categories);
        //2、执行goods插入
        goodsMapper.insert(goods);
        //3、执行goodsSKU插入
        goodsSKUMapper.insert(goodsSKU);

        log.info("categories对象的内容："+categories.toString());
        log.info("goods对象的内容："+goods.toString());
        log.info("goodsSKU对象的内容："+goodsSKU.toString());

        return "initial insert success！";
    }

}
